package pe.com.certicom.ittsa.model.bo;

import java.math.BigDecimal;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import pe.com.certicom.ittsa.model.bean.BeanAsiento;
import pe.com.certicom.ittsa.model.bean.BeanGeoCode;
import pe.com.certicom.ittsa.model.bean.ClienteBean;
import pe.com.certicom.ittsa.model.bean.ReporteDispAsientoBean;
import pe.com.certicom.ittsa.model.dao.DispAsientoDAO;
import pe.com.certicom.ittsa.framework.exception.DaoException;

public class DispAsientoBO {

	private static final Log log = LogFactory.getLog(DispAsientoBO.class);
	private static DispAsientoBO single = null;
	private String ext = "";

	public DispAsientoBO() {

	}

	public static DispAsientoBO obtenerInstancia() {
		if (single == null)
			single = new DispAsientoBO();
		return single;
	}
	
	@SuppressWarnings("unchecked")
	public List<BeanGeoCode> listarOrigen()
			throws DaoException {
		List modulo = null;
		modulo = DispAsientoDAO.listarOrigen();
		return modulo;
	}
	
	@SuppressWarnings("unchecked")
	public List<BeanGeoCode> listarDestino(int origen)
			throws DaoException {
		List modulo = null;
		modulo = DispAsientoDAO.listarDestino(origen);
		return modulo;
	}

	@SuppressWarnings("unchecked")
	public List<ReporteDispAsientoBean> listarReporte(BeanGeoCode departamento)
			throws DaoException {
		List modulo = null;
		modulo = DispAsientoDAO.listarReporte(departamento);
		return modulo;
	}
	
	
	
	public ClienteBean obtenerClienteDni(String dni) throws DaoException{
		ClienteBean cliente=new ClienteBean();
		cliente=(ClienteBean)DispAsientoDAO.obtenerDniCliente(dni);	
		return cliente;
	 
    	}
	
	//ivonne
	public List <ClienteBean> obtenerNumeroOrden(double total_pago) throws DaoException{
		List modulo = null;
		modulo=DispAsientoDAO.obtenerNumeroOrden(total_pago);	
		
		//ClienteBean cliente=new ClienteBean();
		System.out.println("viendo montoBO:" + total_pago);
		//cliente=(ClienteBean)DispAsientoDAO.obtenerNumeroOrden(total_pago);	
		return modulo;
	 
    	}

	
	public void registrarCliente(ClienteBean cliente,BeanAsiento asiento) throws DaoException{
	
		DispAsientoDAO.registrarCliente(cliente,asiento);	
	 
    	}
	
	public void registrarPrePagado(ClienteBean cliente,BeanAsiento asiento) throws DaoException{
		
		DispAsientoDAO.registrarPrePagado(cliente,asiento);	
	 
    	}
	
	public void registrarTotalPrecio(double total_pago) throws DaoException{
		
		DispAsientoDAO.registrarTotalPrecio(total_pago);	
	 
    	}
	
	
	public ClienteBean obtenerCodigoGenerado(String abc) throws DaoException{
		ClienteBean cliente=new ClienteBean();
		cliente=(ClienteBean)DispAsientoDAO.obtenerCodigoGenerado(abc);	
		return cliente;
	 
    	}
	
	
	   @SuppressWarnings("unchecked")
	   public String redondeoNumero(String numero,int posiciones) throws DaoException{
		   BigDecimal bd = new BigDecimal(numero);
		   return  String.valueOf(bd.setScale(posiciones,BigDecimal.ROUND_HALF_UP));
	   }
	   
}
